package entities;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

@Entity
public class Cotizacion extends EntidadBase {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@Column(name = "idCotizacion")
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int nroCotizacion;
	private Date fechaRemision;
	private float importe;
	private int diasValidez;
	
	@OneToMany (cascade=CascadeType.ALL)
	@LazyCollection(LazyCollectionOption.FALSE)
    @JoinColumn(name ="idCotizacion")
	private List<ItemCotizacion> items;
	
	@OneToOne
	@JoinColumn(name = "idSolicitud")
	private SolicitudCotizacion solicitud;
	
	
	public Cotizacion() {
		items = new ArrayList<ItemCotizacion>();
	}

	public int getNroCotizacion() {
		return nroCotizacion;
	}

	public void setNroCotizacion(int nroCotizacion) {
		this.nroCotizacion = nroCotizacion;
	}

	public Date getFechaRemision() {
		return fechaRemision;
	}

	public void setFechaRemision(Date fechaRemision) {
		this.fechaRemision = fechaRemision;
	}

	public float getImporte() {
		return importe;
	}

	public void setImporte(float importe) {
		this.importe = importe;
	}

	public int getDiasValidez() {
		return diasValidez;
	}

	public void setDiasValidez(int diasValidez) {
		this.diasValidez = diasValidez;
	}

	public List<ItemCotizacion> getItems() {
		return items;
	}

	public void setItems(List<ItemCotizacion> items) {
		this.items = items;
	}

	public SolicitudCotizacion getSolicitud() {
		return solicitud;
	}

	public void setSolicitud(SolicitudCotizacion solicitud) {
		this.solicitud = solicitud;
	}
	
	
}
